SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO



CREATE PROCEDURE [dbo].[LIQAporteObraSocial] 
@Agente int,
@Servicio int,
@Plaza int,
@Resultado float output,
@idLiquidacion int,
@DiasALiquidar int,
@DiasDelPeriodo INT,
@Desde DATETIME,
@Hasta DATETIME
 AS 

SET NOCOUNT ON
SET DATEFORMAT dmy
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- REGISTRO DE ACTUALIZACIONES
-- 17/11/2005 - Se agregaron parametros @Desde y @Hasta para manejo de Fechas en Titulares y Suplentes
-- 09/07/2006 - Los parametros se obtienen de la funcion fnObtenerValorDeParametro con la fecha que corresponda.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

PRINT 'APORTE OBRA SOCIAL'
DECLARE @Jubilacion float
DECLARE @TotalRemunerativo float
DECLARE @Afiliacion int, @horas int, @regimensalarial  int, @organizacion int, @situacionrevista int
DECLARE @DescAporte float
DECLARE @NroError int
DECLARE @SubOrganizacion int
DECLARE @CargoSalarial Int
DECLARE @PorSubsidio float
DECLARE @CabeceraDeLiquidacion INT
-- Actualizado 28/09/2005
DECLARE @PorcentajeDeAporte DECIMAL(18,4)

--SELECT @PorcentajeDeAporte = CONVERT(DECIMAL(18,4), Valor1) FROM tb_Parametros WHERE Parametro = '%ContribucionObraSocialPatronal'
SELECT @PorcentajeDeAporte = CONVERT(DECIMAL(18,4), dbo.fnObtenerValorDeParametro ('%ContribucionObraSocialPatronal', @Hasta))

SELECT @TotalRemunerativo = sum(MontoHaberes)  from tb_RegistroDeLiquidaciones, tb_ConceptosDeLiquidacion 
	 WHERE Servicio = @Servicio and liquidacion = @idLiquidacion and concepto = idConceptoLiquidacion and (tipo = 1 or tipo = 2)

Select @Afiliacion = idAfiliacion from tb_Afiliaciones where idAgente = @Agente
Select @horas= horas, @regimensalarial = regimensalarial, @SubOrganizacion = SubOrganizacion, @PorSubsidio = IsNull(PorcentajeSubsidio,0)  from tb_Plazas where idPlaza = @Plaza
Select @Organizacion = ubicacionOrig, @SituacionRevista = SituacionRevista, @CargoSalarial = CargoSalarial from tb_ServiciosAgentes where idservicioAgente =  @Servicio


If (Select OrganizacionLiquidadora From tb_SubOrganizaciones Where idSubOrganizacion = @SubOrganizacion) Is Not Null
	Select @Organizacion = OrganizacionLiquidadora From tb_SubOrganizaciones Where idSubOrganizacion = @SubOrganizacion


-- Actualizado 28/09/2005
--Select @DescAporte = (@TotalRemunerativo * 0.06)
SELECT @DescAporte =(@TotalRemunerativo * (@PorcentajeDeAporte/100))

INSERT INTO tb_RegistroDeLiquidaciones (AfectadosPorAjuste, Afiliacion, Agente, Ajuste, Cantidad, Cargosalarial, Concepto, Descripcion, DescuentoExterno, Desde, Dias, Embargo, Hasta, Horas, LegajoSalarial, Liquidacion, MontoDescuento, MontoHaberes, Organizacion, Reclamado, Servicio, SituacionRevista, DiasLiquidados, SubOrganizacion)
	VALUES (null, @Afiliacion, @Agente, null, 1, null, 15, null, null, null, null, null, null, @horas, 0, @idLiquidacion, @DescAporte, 0, @Organizacion, null, @Servicio, @SituacionRevista, @diasALiquidar, @SubOrganizacion)

SELECT  @NroError = @@error

IF @NroError <> 0
BEGIN
	SELECT @CabeceraDeLiquidacion = IdCabeceraLiquidacion FROM tb_Liquidaciones WHERE IdLiquidacion = @IdLiquidacion

	INSERT INTO tb_ErroresLiquidacion (Agente, Concepto, Diagnostico, Fecha, Liquidacion, Organizacion, Servicio, CabeceraDeLiquidacion, NumeroDeError) VALUES
	(@Agente, 15, CONVERT(VARCHAR,@NroError), GETDATE(), @idLiquidacion, @Organizacion, @Servicio, @CabeceraDeLiquidacion, @NroError)
END
GO
